package com.example.netty_pipline.pipeline;

/**
 * ChannelInboundHandler接口 - 处理入站事件
 * 模仿Netty的ChannelInboundHandler
 */
public interface ChannelInboundHandler extends ChannelHandler {
    
    /**
     * 通道激活时调用
     */
    default void channelActive(ChannelHandlerContext ctx) throws Exception {
        ctx.fireChannelActive();
    }
    
    /**
     * 通道失活时调用
     */
    default void channelInactive(ChannelHandlerContext ctx) throws Exception {
        ctx.fireChannelInactive();
    }
    
    /**
     * 读取数据时调用
     */
    default void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
        ctx.fireChannelRead(msg);
    }
    
    /**
     * 读取完成时调用
     */
    default void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
        ctx.fireChannelReadComplete();
    }
    
    /**
     * 用户事件触发时调用
     */
    default void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
        ctx.fireUserEventTriggered(evt);
    }
}